home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 April / EnigmA AMIGA RUN 06 (1996)(G.R. Edizioni)(IT)[!][issue 1996-04][Skylink CD V].iso / progs / editor / write-ed / rexx / openwrite.rexx < prev    next >
OS/2 REXX Batch file  |  1995-02-14  |  3KB  |  119 lines

  1. /*
  2. * WRITE V3.1536 © 1991-1995 by Tim Teulings startup script
  3. * for ideal use set sleep mode in the configuration file
  4. * This script was done by MGR, Asgrad -- Lars Hanke
  5. * no copyrights claimed
  6. *
  7. * $VER Open.wrx 1.3 (15.2.95) Tim Teulings
  8. *
  9. * Template = "FILE,CONFIG,ScreenToFront=SCREEN/S,Background=RUN"
  10. *
  11. *  FILE           - name of file to be loaded into new ed
  12. *  CONFIG         - config to be used when opening ed
  13. *                   (defaults to "").
  14. *  ScreenToFront  - bring to front when starting and to the back
  15. *                   again when quitting. Usefull for starting WRITE
  16. *                   from other screens.
  17. *  Background     - return to shell immediately.
  18. *
  19. * History:
  20. *  1.3 Make use of new "direct access to rexxvars"-feature (Tim Teulings)
  21. *  1.2 use RexxDosSupport.library, added CONFIG option (hartmut Goebel)
  22. *  1.1 added SCREEN option (Tim Teulings)
  23. *  1.0 initial version
  24. */
  25.  
  26. ArgsTemplate = "FILE,CONFIG,ScreenToFront/S,Background=RUN/"
  27.  
  28. /* easy localization :-) */
  29. Write.NotFound = "Kann WRITE nicht finden!"
  30. Write.NoMorePorts = "REXX-SKript 'open.wrx':\nBekomme keinen ARexx-Port!"
  31. /* english texts
  32. Write.NotFound = "Can't find WRITE!"
  33. Write.NoMorePorts = "REXX-script 'open.wrx':\nSorry, no more private ports!"
  34. */
  35.  
  36. call addlib('rexxdossupport.library', 0, -30, 2)
  37.  
  38. CONFIG=""; FILE=""; ScreenToFront = 0; Background = 0;
  39.  
  40. parse arg arguments
  41.  
  42. if strip(arguments) = '?' then do
  43.   address  command 'echo noline "' ArgsTemplate ': "'
  44.   pull arguments
  45. end; else nop
  46. if ~ ReadArgs(arguments,ArgsTemplate) then do
  47.   say Fault(RC,ProgramName)
  48.   exit 10
  49. end; else nop
  50.  
  51. drop arguments
  52.  
  53. call StartWrite()
  54.  
  55. FileName = file; drop file;
  56. IF length(FileName)~=0 THEN DO
  57.   IF pos(':',FileName)=0 THEN DO
  58.     DirName=pragma('D')
  59.     IF right(DirName,1)~=':' THEN
  60.       DirName=DirName||'/'
  61.     FileName=DirName||FileName
  62.   END
  63. END
  64.  
  65. ADDRESS "WRITE"
  66.  
  67. OPTIONS RESULTS
  68.  
  69. 'NEWED "&CONFIG&"' /* open new Edit using config */
  70. ID = RESULT
  71. OPENPORT ID
  72. Port = RESULT
  73. IF Port = "" THEN DO
  74.   'MESSAGEOK &Write.NoMorePorts'
  75.   EXIT 20
  76. END
  77.  
  78. INTERPRET ADDRESS Port
  79.  
  80. "WINDOW 0 0 0 0"
  81.  
  82. 'SETVAR "_Path" &FileName'
  83. IF length(FileName)~=0 THEN DO
  84.   IF exists(FileName) then
  85.     'OPEN &FileName'
  86.   ELSE
  87.     'SETVAR "_FileName" &FileName'
  88. END
  89.  
  90. IF (ScreenToFront = TRUE) & (Background = FALSE) THEN DO
  91.   MODIFYSCREEN 0
  92. END
  93.  
  94. IF (Background = FALSE) THEN DO
  95.   WAITPORT ID
  96. END
  97.  
  98. IF (ScreenToFront = TRUE) & (Background = FALSE) THEN DO
  99.   IF show('P',"WRITE") THEN DO
  100.     ADDRESS "WRITE"
  101.     MODIFYSCREEN 1
  102.   END
  103. END
  104.  
  105. EXIT
  106.  
  107. /* ---- */
  108.  
  109. StartWrite: PROCEDURE expose Write.NotFound
  110. IF ~show('P',"WRITE") THEN DO
  111.   WRITEPATH = GetVar("WRITE")
  112.   IF RC ~= 0 THEN DO
  113.     say Write.NotFound
  114.     EXIT 20;
  115.   END;
  116.   ADDRESS COMMAND "run >NIL: <NIL:" WRITEPATH
  117.   ADDRESS COMMAND "WaitForPort <NIL: >NIL: WRITE" /* should be in command search path */
  118. END
  119.